// See https://sequelize.org/master/manual/model-basics.html
// for more of what you can do here.
import { Sequelize, DataTypes, Model } from 'sequelize';
import { Application } from '../declarations';
import { HookReturn } from 'sequelize/types/hooks';

export default function (app: Application): typeof Model {
  const sequelizeClient: Sequelize = app.get('sequelizeClient');
  const orders = sequelizeClient.define('orders', {
    // 产品名称 
    proName:{
		  type:DataTypes.STRING,
		  allowNull:false
		 },
    // 单价
    price:{
		  type:DataTypes.FLOAT,
		  allowNull:false
		 },
    // 购买数量 
    howMany:{
		  type:DataTypes.INTEGER,
		  allowNull:false
		 },
    // 邮寄地址  
    address:{
		 type:DataTypes.STRING,
		 allowNull:false
	 	},
    // 收货人 
    consignee:{
		 type:DataTypes.STRING,
		 allowNull:false
		 },
    // 电话号码 
    telephone:{
		 type:DataTypes.STRING,
		 allowNull:false
		 },
    // 商品颜色  
    colors:{
		 type:DataTypes.STRING,
		  allowNull:false
		 },
    // 合计 
    total:{
		  type:DataTypes.FLOAT,
		  allowNull:false
		 },
    // 下单时间 
    Time:{
		  type:DataTypes.STRING,
		  allowNull:false
		 },
    // 快递单号  
    orderNumber:{
		  type:DataTypes.STRING,
		  allowNull:false
		 },
    // 订单备注  
    remarks:{
		  type:DataTypes.STRING,
		  }, 
    // 运费
    freight:{
		  type:DataTypes.FLOAT,
		 }, 
    // 运费
    remission:{
		  type:DataTypes.FLOAT,
		 },   
  }, {
    hooks: {
      beforeCount(options: any): HookReturn {
        options.raw = true;
      }
    }
  });

  // eslint-disable-next-line @typescript-eslint/no-unused-vars
  (orders as any).associate = function (models: any): void {
    // Define associations here
    // See https://sequelize.org/master/manual/assocs.html
  };

  return orders;
}
